from django.shortcuts import render, redirect
# 导包
from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
# 导入类视图
from django.views import View

# from myapp.models import User
import json
from django.core.serializers import serialize
from rest_framework.response import Response
from rest_framework.views import APIView
# 导入加密库
import hashlib
# 导入图片库
# 绘画库
from PIL import ImageDraw
# 字体库
from PIL import ImageFont
# 图片库
from PIL import Image
# 随机库
import random
# 文件流
import io

import requests

# 导入上传文件夹配置
from mydjango.settings import UPLOAD_ROOT
import os

# 导入原生sql模块
from django.db import connection

import jwt

# 导入redis数据库
import redis

# 导入时间模块
import time

# 导入公共目录变量
from mydjango.settings import BASE_DIR

# 导包
from django.db.models import Q, F

# 导入dwebsocket的库
from dwebsocket.decorators import accept_websocket
import uuid

from myapp.models import User,Pics

from myapp.myser import UserSer,PicsSer

import jwt


#导入钉钉三方登录所需库
import hmac
import base64
from hashlib import sha256
import urllib

# 导入中间件包
from django.utils.deprecation import MiddlewareMixin

#导入redis
import redis

#定义ip地址和端口
host = '127.0.0.1'
port = 6379

#生成链接对象
r = redis.Redis(host=host,port=port)


#添加活动接口(幻灯片)
class InsertPics(APIView):

    def get(self,request):
        #接收参数
        title = request.GET.get('title','null')
        link = request.GET.get('link','null')
        img = request.GET.get('img','null')

        print(title)
        print(link)
        print(img)

        #排重
        pics = Pics.objects.filter(title=title).first()

        if pics:
            res = {}
            res['code'] = 405
            res['message'] = "该活动已存在"

            return Response(res)
        else:
            pics = Pics(title = title,link = link,img=img)
            pics.save()

            res = {}
            res['code'] = 200
            res['message'] = "活动添加成功"

            return Response(res)
    #幻灯片修改
    def post(self,request):
        title = request.POST.get('title')
        new_title = request.POST.get('new_title')
        link = request.POST.get('link')
        img = request.POST.get('img')

        print('title: ',title)
        print('new_title: ',new_title)
        print('link: ',link)
        print('img: ',img)

        pics = Pics.objects.filter(title=title).first()
        if pics:
            pics.title = new_title
            pics.link = link
            pics.img = img
            pics.save()

            res = {}
            res['code'] = 200
            res['message'] = '活动修改成功'

            return Response(res)

        else:
            res = {}
            res['code'] = 405
            res['message'] = "活动修改失败,请重试"

            return Response(res)


#活动删除接口(幻灯片)
class Delete_Pics(APIView):
    def get(self,request):
        title = request.GET.get('title')
        print(title)
        try:
            Pics.objects.filter(title=title).delete()

            res = {}
            res['code'] = 200
            res['message'] = '活动删除成功'

            return Response(res)
        except Exception as e:
            print(e)
            res = {}
            res['code'] = 405
            res['message'] = "活动删除失败,请重试"

            return Response(res)


#幻灯片接口
class PicsList(APIView):
    def get(self,request):

        #查询数据
        pics = Pics.objects.filter().values("title","link",'img')

        #序列化对象
        pics_ser = PicsSer(pics,many=True)

        return Response(pics_ser.data)















